/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package controle;

import java.sql.Connection;
import java.util.Vector;
import javax.swing.JOptionPane;
import modelo.Cliente;
import modelo.Endereco;
import persistencia.ClienteDAO;
import persistencia.FabricaConexao;

/**
 *
 * @author eli
 */
public class ControladorCliente
{
    public void adicionar(String nome, String telefone, String rg, String cpf, String cidade, String rua)
    {
        Endereco novoEndereco = new Endereco();
        novoEndereco.setRua(rua);
        novoEndereco.setCidade(cidade);
        
        Cliente novoCliente = new Cliente();
        novoCliente.setNome(nome);
        novoCliente.setTelefone(telefone);
        novoCliente.setRg(rg);
        novoCliente.setCpf(cpf);
        novoCliente.setEndereco(novoEndereco);
        
        FabricaConexao fabrica = new FabricaConexao();
        //Connection conexao = null;
        
        try
        {
            Connection conexao = fabrica.fazConexao();
            
            ClienteDAO dao = new ClienteDAO(conexao);
            dao.adicionar(novoCliente);
            
            fabrica.commitConexao();
        }
        catch( Exception e )
        {
            //JOptionPane.showMessageDialog(null, "rollback");
            
            fabrica.rollbackConexao();
            
            //e.printStackTrace();
        }
        finally
        {
            fabrica.fecharConexao();
        }
    }
    
    public void editar()
    {
        
    }
    
    public void remover(String codigo)
    {
        FabricaConexao fabrica = new FabricaConexao();
        
        try
        {
            Connection conexao = fabrica.fazConexao();
            
            ClienteDAO dao = new ClienteDAO(conexao);
            dao.remover(codigo);
        }
        catch( Exception e )
        {
            e.printStackTrace();
        }
        finally
        {
            fabrica.fecharConexao();
        }
    }
    
    public Vector<Vector> listarTodos()
    {
        // Abre a conexao
        FabricaConexao fabrica = new FabricaConexao();
        
        Vector<Vector> dados = null;
        
        try
        {
            Connection conexao = fabrica.fazConexao();
            
            ClienteDAO dao = new ClienteDAO(conexao);
            dados = dao.listarTodos();
        }
        catch( Exception e )
        {
            e.printStackTrace();
        }
        finally
        {
            // Fecha a conexão
            fabrica.fecharConexao();
        }
        
        return dados;
    }
    
    public Vector<Vector> procurar(String nome)
    {
        // Abre a conexao
        FabricaConexao fabrica = new FabricaConexao();
        
        Vector<Vector> dados = null;
        
        try
        {
            Connection conexao = fabrica.fazConexao();
            
            ClienteDAO dao = new ClienteDAO(conexao);
            dados = dao.procurar(nome);
        }
        catch( Exception e )
        {
            e.printStackTrace();
        }
        finally
        {
            // Fecha a conexão
            fabrica.fecharConexao();
        }
        
        return dados;
    }
}
